package com.thunder.ktv.scoreengine2sdk;

/**
 * 难度等级枚举
 * 定义了评分引擎支持的不同难度级别
 */
public enum DifficultyLevel {
    /**
     * 简单难度
     */
    EASY(0, "简单"),
    
    /**
     * 普通难度
     */
    NORMAL(1, "普通"),
    
    /**
     * 困难难度
     */
    HARD(2, "困难"),
    
    /**
     * 专家难度
     */
    EXPERT(3, "专家"),
    
    /**
     * 自定义难度
     */
    CUSTOM(4, "自定义");
    
    private final int value;
    private final String chineseName;
    
    DifficultyLevel(int value, String chineseName) {
        this.value = value;
        this.chineseName = chineseName;
    }
    
    /**
     * 获取难度等级的整数值
     * 
     * @return 难度等级对应的整数值
     */
    public int getValue() {
        return value;
    }
    
    /**
     * 获取难度等级的中文名称
     * 
     * @return 难度等级的中文名称
     */
    public String getChineseName() {
        return chineseName;
    }
    
    /**
     * 根据整数值获取对应的难度等级枚举
     * 
     * @param value 整数值
     * @return 对应的难度等级枚举，如果没有匹配则返回NORMAL
     */
    public static DifficultyLevel fromValue(int value) {
        for (DifficultyLevel level : values()) {
            if (level.getValue() == value) {
                return level;
            }
        }
        return NORMAL; // 默认返回普通难度
    }
    
    @Override
    public String toString() {
        return chineseName;
    }
} 